package com.enjoyor.soa.traffic.api.service.dubbo.ejcds;

import java.util.List;

import com.enjoyor.soa.traffic.util.pojo.ResultPojo;


public interface DubboEventStatService {
    /**
     * 日警情总览
     *
     * @param strReportTime
     * @param token
     * @param systemKey
     * @return
     */
    public ResultPojo overviewEventDay(String strReportTime, List<String> strHandleDepts, String token, String systemKey);


    /**
     * 警情等级统计
     *
     * @param strReportTimeStart
     * @param strReportTimeEnd
     * @param token
     * @param systemKey
     * @return
     */
    public ResultPojo overviewEventLevel(String strReportTimeStart, String strReportTimeEnd, List<String> strHandleDepts, String token, String systemKey);

    /**
     * 警情处置统计
     *
     * @param strReportTimeStart
     * @param strReportTimeEnd
     * @param token
     * @param systemKey
     * @return
     */
    public ResultPojo overviewEventType(String strReportTimeStart, String strReportTimeEnd, List<String> strHandleDepts, String token, String systemKey);


    /**
     * 警情状态统计
     *
     * @param strReportTimeStart
     * @param strReportTimeEnd
     * @param token
     * @param systemKey
     * @return
     */
    public ResultPojo overviewEventStatus(String strReportTimeStart, String strReportTimeEnd, List<String> strHandleDepts, String token, String systemKey);


    /**
     * 警情分时统计(一日)(粒度一小时)
     *
     * @param strReportTime
     * @param token
     * @param systemKey
     * @return
     */
    public ResultPojo overviewEventTimeCompare(String strReportTime, List<String> strHandleDepts, String token, String systemKey);

    /**
     * 警情分时累计(一日)(粒度一小时)
     *
     * @param strReportTime
     * @param token
     * @param systemKey
     * @return
     */
    public ResultPojo accumulateEventTimeCompare(String strReportTime, List<String> strHandleDepts, String token, String systemKey);

    /**
     * 警情分时统计(一日)(粒度五分钟)
     *
     * @param strReportTime
     * @param token
     * @param systemKey
     * @return
     */
    public ResultPojo overviewEventTimeCompare_5min(String strReportTime, List<String> strHandleDepts, String token, String systemKey);

    /**
     * 警情分时累计(一日)(粒度五分钟)
     *
     * @param strReportTime
     * @param token
     * @param systemKey
     * @return
     */
    public ResultPojo accumulateEventTimeCompare_5min(String strReportTime, List<String> strHandleDepts, String token, String systemKey);

    /**
     * 部门警情处置
     *
     * @param strStartTime
     * @param strEndTime
     * @param strHandleDepts
     * @param token
     * @param systemKey
     * @return
     */
    public ResultPojo statEventStatusByDept(String strStartTime, String strEndTime, List<String> strHandleDepts, String token, String systemKey);

    /**
     * 警情状态统计
     *
     * @param strReportTimeStart
     * @param strReportTimeEnd
     * @param strEventLevel
     * @param token
     * @param systemKey
     * @return
     */
    public ResultPojo overviewEventStatusByLevel(String strReportTimeStart, String strReportTimeEnd, List<String> strHandleDepts, String strEventLevel, String token, String systemKey);


    /**
     * 警情分类统计
     *
     * @param strReportTimeStart
     * @param strReportTimeEnd
     * @param strEventStatus
     * @param token
     * @param systemKey
     * @return
     */
    public ResultPojo overviewEventTypeByStatus(String strReportTimeStart, String strReportTimeEnd, List<String> strHandleDepts, String strEventStatus, String token, String systemKey);


    /**
     * 警情总量统计
     *
     * @param strReportTimeStart
     * @param strReportTimeEnd
     * @param strEventType
     * @param token
     * @param systemKey
     * @return
     */
    public ResultPojo statEventTotal(String strReportTimeStart, String strReportTimeEnd, List<String> strHandleDepts, String strEventType, String token, String systemKey);

    /**
     * 警情类型统计
     *
     * @param strReportTimeStart
     * @param strReportTimeEnd
     * @param strEventType
     * @param token
     * @param systemKey
     * @return
     */
    public ResultPojo statEventType(String strReportTimeStart, String strReportTimeEnd, List<String> strHandleDepts, String strEventType, String token, String systemKey);

    /**
     * 高发时段统计
     *
     * @param strHandleDepts
     * @param strEventType
     * @param strTimeType
     * @param token
     * @param systemKey
     * @return
     */
    public ResultPojo statHighPeriod(String strTime, List<String> strHandleDepts, String strEventType, String strTimeType, String token, String systemKey);

    /**
     * 警情高发部门统计
     *
     * @param strEventType
     * @param strTimeType
     * @param token
     * @param systemKey
     * @return
     */
    public ResultPojo statHighDept(String strTime, String strEventType, String strTimeType, String token, String systemKey);

    /**
     * 警情高发类型统计
     *
     * @param strHandleDepts
     * @param strTimeType
     * @param token
     * @param systemKey
     * @return
     */
    public ResultPojo statHighZone(String strTime, List<String> strHandleDepts, String strTimeType, String token, String systemKey);


    /**
     * 警情处置有效率统计
     *
     * @param strReportTimeStart
     * @param strReportTimeEnd
     * @param strEventTypeCode
     * @param token
     * @param systemKey
     * @return
     */
    public ResultPojo statEffective(String strReportTimeStart, String strReportTimeEnd, String strEventTypeCode, List<String> strHandleDepts, String token, String systemKey);

    /**
     * 事故成因统计
     *
     * @param strReportTimeStart
     * @param strReportTimeEnd
     * @param strHandleDepts
     * @param token
     * @param systemKey
     * @return
     */
    public ResultPojo statEventReason(String strReportTimeStart, String strReportTimeEnd, List<String> strHandleDepts, String token, String systemKey);

    /**
     * 工作量统计
     *
     * @param startTime
     * @param endTime
     * @param token
     * @param systemKey
     * @return
     */
    public ResultPojo statWorkload(String startTime, String endTime, String token, String systemKey);
}
